Matching system requirements of software with the specifications of the computer system on which it will be used is essential to ensure proper functioning of the software on the system. This is especially true for applications that place significant demands on the computer system, such as computer games and computer-assisted drafting tools. Purchasing software for use on a computer system currently requires an understanding of the system requirements of the software and technical details of the computer system. Unfortunately, the average consumer is often unable to match software requirements to system specifications due to the level of technical knowledge required. Furthermore, users of resource-intensive applications upgrade their PCs more frequently than those who do not. Therefore, the ability of consumers to match software requirements with system specifications is important to not only the consumers, but also to the PC manufacturers, component manufacturers, software manufacturers, and hardware and software retailers.
To date, application software, middleware, and operating systems have, at best, relied on a limited inventory of awareness of the components in a computer system when they are installed. This has led to a general case installation based on assumptions of the actual capabilities of the subsystems in the computer. For example, being aware of how much RAM (random access memory) or how large a hard drive is does not allow software to optimize its buffer transfer sizes because there is no metric associated with that inventory of memory or disk size. Not having that relevant information places a burden on the user or purchaser. The only way to ensure a given application will run well on a given computer or computing product is to compare the detailed technical specifications. This requires a high level of knowledge and sophistication on the part of the purchaser.
The entertainment software market provides an example of the effects of software requirements/system specifications matching problems facing PC hardware and software manufacturers today. Games created for console platforms (e.g., Sony Playstation® 2, Nintendo® GameCube, or Microsoft® Xbox) tend to have more consistent sales volumes than games created for general-purpose personal computers in part because, with a better guarantee of matching software requirements with system specifications, customers are more willing to buy console titles. Keeping the PC ecosystem vibrant for both games and other performance demanding applications requires a system that enables consumers to purchase such applications with the same surety provided by the game console platforms.
Previous attempts to categorize computer systems were based only on a list of required components for a system. In the 1990s, the Multimedia PC Marketing Council introduced the Multimedia PC (MPC) specifications to provide PC specification guidelines for consumers wishing to run multimedia applications. For example, to achieve the Level 1 MPC specification, a computer system was required to have a processor, RAM, hard disk drive, CD-ROM drive, sound card, and video display with certain characteristics.
Previous attempts to categorize software include Microsoft's “Designed for Windows 95” logo program. Software vendors were granted permission to use Microsoft's “Designed for Windows 95” logo if the vendors met certain software design requirements set by Microsoft. The design requirements ensured that software carrying the logo would work effectively and reliably in a Microsoft Windows 95 operating system environment.
Whatever the benefits of previous techniques, however, they do not have the advantages of the techniques and tools presented below.